/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedBeans;

import entities.AccionEstrategica;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.primefaces.model.TreeNode;  
import org.primefaces.model.DefaultTreeNode;  
import servicios.ServicioAccionEstrategica;

/**
 *
 * @author curso
 */
@ManagedBean
@RequestScoped
public class TreeBean {  
      
    private AccionEstrategica accion;
    private TreeNode root;  
    private List<AccionEstrategica> acciones;
    @EJB
    private ServicioAccionEstrategica servicioAccion;
  
    public TreeBean() {  
    }  
    
    public void creaArbol(){
        for (AccionEstrategica ae : acciones) {
            TreeNode node = new DefaultTreeNode(ae.getNombreAccionEstrategica(), root);
            List <AccionEstrategica> hijas = ae.getHijas();
            for (AccionEstrategica accion1 : hijas) {
                TreeNode node1 = new DefaultTreeNode(accion1.getNombreAccionEstrategica(), node);
                
                if(!accion1.getHijas().isEmpty())
                {
                   crearHijas(accion1, node1);
                }
            }        
        }        
    }
    
    public void crearHijas( AccionEstrategica accion, TreeNode nodo){
        
        List<AccionEstrategica> h = accion.getHijas();
        for (AccionEstrategica accion1 : h) {
             TreeNode node1 = new DefaultTreeNode(accion1.getNombreAccionEstrategica(), nodo);             
             crearHijas(accion1, node1);
             
        }
        
    }
    @PostConstruct
    public void inizializar() {
        acciones= servicioAccion.verTodos();
        root = new DefaultTreeNode("Root", null);
        creaArbol();
    }
    
    public TreeNode getRoot() {  
        return root;  
    } 
}  
